﻿using System;
using System.Collections.Generic;
using Domain.MainModule.Entities;

namespace Application.MainModule.CustomerServiceManagement
{
    public interface ICustomerServiceManagementService
    {
        /// <summary>
        /// Add new customerService.
        /// </summary>
        /// <param name="customerService">CustomerService to be added</param>
        void AddCustomerService(CustomerService customerService);

        /// <summary>
        /// Change existing customerService.
        /// </summary>
        /// <param name="customerService">Existing customerService to modify.</param>
        void ChangeCustomerService(CustomerService customerService);

        /// <summary>
        /// Find an customerService by its Id.
        /// </summary>
        /// <param name="customerServiceId">CustomerServiceId</param>
        /// <returns>An customerService</returns>
        CustomerService FindCustomerServiceById(Guid customerServiceId);

        /// <summary>
        /// Find an customerService by order Id.
        /// </summary>
        /// <param name="userId">Membership OrderId</param>
        /// <returns>An customerService</returns>
        List<CustomerService> FindCustomerServiceByOrderId(Guid orderId);

        /// <summary>
        /// Remove an existing customerService.
        /// </summary>
        /// <param name="customerService">The adress to be removed.</param>
        void RemoveCustomerService(CustomerService customerService);
    }
}
